Показано с 1 по 2 из 2

Тема: [MV + MZ]DKR_PuzzleMouse

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Бывалый Аватар для Darchan Kaen
    Информация о пользователе
    Регистрация
    17.06.2013
    Адрес
    Одесса
    Сообщений
    851
    Записей в дневнике
    3
    Репутация: 47 Добавить или отнять репутацию

    По умолчанию [MV + MZ]DKR_PuzzleMouse

    Название плагина: DKR_PuzzleMouse
    Автор: DarchanKaen
    Версия: 2.3.0
    Дата выхода: 25.12.2021
    Описание плагина:
    Плагин позволяет использовать мышку для создания паззлов, а именно (для ЛКМ и ПКМ, вместе или отдельно...а также колеса мыши):
    - отключать и включать стандартное поведение;
    - получать координаты кликов и номер тега тайла (по-умолчанию они записываются в переменные 11-16, можно изменить);
    - подсчитывать количество кликов и задавать кол-во;
    - вызывать Общие события.

    Использование плагина:

    Одинаково и для MV , и для MZ (в эвенте, в команде "Скрипт")!

    - Отключение стандартного поведения:
    DKR.PuzzleMouse.mouseLeftClickStandardBehaviorOnOf f(isStandardBehaviourOn, isReqLeftMouseCoord); - тольк ЛКМ.
    DKR.PuzzleMouse.mouseRightClickStandardBehaviorOnO ff(isStandardBehaviourOn, isReqRightMouseCoord); - тольк ПКМ.
    DKR.PuzzleMouse.mouseALLStandardBehaviorOnOff(isSt andardBehaviourOn, isReqLeftMouseCoord, isReqRightMouseCoord); - вместе ЛКМ и ПКМ.
    где:
    isStandardBehaviourOn - true (включено) или false (выключено) стандартное поведение ЛКМ и ПКМ (идти / меню);
    isReqLeftMouseCoord, isReqRightMouseCoord - true (нужны координаты X, Y и номер тайла) или false (не нужны) для ЛКМ и ПКМ.

    - Включение стандартного поведения:
    DKR.PuzzleMouse.onMouseLeftClickStandardBehavior() ; - только ЛКМ.
    DKR.PuzzleMouse.onMouseRightClickStandardBehavior( ); - только ПКМ.
    DKR.PuzzleMouse.onMouseLeftAndRightClickStandardBe havior(); - вместе ЛКМ и ПКМ.

    - Задание номера вызываемого Общего события:
    DKR.PuzzleMouse.setMouseLeftClickCommonEventId(N); - задание Общего события для ЛКМ; 0 по-умочланию.
    DKR.PuzzleMouse.setMouseRightClickCommonEventId(N) ; - задание Общего события для ПКМ; 0 по-умочланию.
    DKR.PuzzleMouse.setMouseWheelCommonEventId(N); - задание Общего события для Колесика мышки; 0 по-умочланию.
    где N - номер вызываемого Общего события; если номер равен 0, то Общее событие не вызывается.

    - Получение и задание кол-ва кликов:
    DKR.PuzzleMouse.getLeftMouseClickCount(); - получение кол-ва кликов ЛКМ.
    DKR.PuzzleMouse.getRightMouseClickCount(); - получение кол-ва кликов ПКМ.
    DKR.PuzzleMouse.setLeftMouseClickCount(N); - задание кол-ва кликов ЛКМ; 0 по-умочланию.
    DKR.PuzzleMouse.setRightMouseClickCount(N); - задание кол-ва кликов ЛКМ; 0 по-умочланию


    Спойлер Код плагина:

    Спойлер Код плагина для MV и для MZ, 2.3.0:

    Код:
    /*:
     *-----------------------------------------------------------------------------
     *  DKR PuzzleMouse
     *-----------------------------------------------------------------------------
     *  For: RPGMAKER MV, MZ
     *  DKR_PuzzleMouse_2.0_MVMZ.js
     *-----------------------------------------------------------------------------
     *  25.12.2021 - Версия 2.3.0
     *-----------------------------------------------------------------------------
     * Поставляется AS-IS.
     * Вся ответственность при использовании - на Пользователе!
     *-----------------------------------------------------------------------------
     *-----------------------------------------------------------------------------
     * @author DarchanKaen
     * @target MV, MZ
     * @plugindesc (v.2.3.0) Плагин позволяет использовать мышку для создания паззлов, а именно (для ЛКМ и ПКМ, вместе или отдельно): отключать и включать стандартное поведение, получать координаты кликов и номер тега тайла, подсчитывать количество кликов, а также вызывать Общие события.
     *
     * @help
     *   DKR PuzzleMouse
     * ----------------------------------------------------------------------------
     * ---Общая информация:
     * Плагин позволяет использовать мышку для создания паззлов, 
     * а именно (для ЛКМ и ПКМ, вместе или отдельно...а также колеса мыши):::
     * - отключать и включать стандартное поведение;
     * - получать координаты кликов и номер тега тайла (они записываются в перменные 11-16);
     * - подсчитывать количество кликов и задавать кол-во;
     * - вызывать Общие события.
     * ---Команды(в эвенте команда "Скрипт"):
     * - Включение / отключение стандратного поведения:
     * DKR.PuzzleMouse.mouseLeftClickStandardBehaviorOnOff(isStandardBehaviourOn, isReqLeftMouseCoord); - тольк ЛКМ.
     * DKR.PuzzleMouse.mouseRightClickStandardBehaviorOnOff(isStandardBehaviourOn, isReqRightMouseCoord); - тольк ПКМ.
     * DKR.PuzzleMouse.mouseALLStandardBehaviorOnOff(isStandardBehaviourOn, isReqLeftMouseCoord, isReqRightMouseCoord);  - вместе ЛКМ и ПКМ.
     * где: 
     * isStandardBehaviourOn - true (включено) или false (выключено) стандартное поведение ЛКМ и ПКМ (идти / меню);
     * isReqLeftMouseCoord, isReqRightMouseCoord - true (нужны координаты X, Y и номер тайла) или false (не нужны) для ЛКМ и ПКМ.
     * - Задание номера вызываемого Общего события.
     * DKR.PuzzleMouse.setMouseLeftClickCommonEventId(N); - задание Общего события для ЛКМ; 0 по-умочланию.
     * DKR.PuzzleMouse.setMouseRightClickCommonEventId(N); - задание Общего события для ПКМ; 0 по-умочланию
     * DKR.PuzzleMouse.setMouseWheelCommonEventId(N); - задание Общего события для Колесика мышки; 0 по-умочланию
     * где N - номер вызываемого Общего события; если номер равен 0, то Общее событие не вызывается!
     * - Получение и задание кол-ва кликов.
     * DKR.PuzzleMouse.getLeftMouseClickCount(); - получение кол-ва кликов ЛКМ.
     * DKR.PuzzleMouse.getRightMouseClickCount(); - получение кол-ва кликов ПКМ.
     * DKR.PuzzleMouse.setLeftMouseClickCount(N); - задание кол-ва кликов ЛКМ; 0 по-умочланию.
     * DKR.PuzzleMouse.setRightMouseClickCount(N); - задание кол-ва кликов ЛКМ; 0 по-умочланию
     * ----------------------------------------------------------------------------
     * 
     * @param leftClickXCoordProcessedVariableFP
     * @type variable
     * @desc Номер переменной для сохранения координаты X от ЛКМ.
     * @default 11
     * 
     * @param leftClickYCoordProcessedVariableFP
     * @type variable
     * @desc Номер переменной для сохранения координаты Y от ЛКМ.
     * @default 12
     * 
     * @param leftClickTerrainTagVariableFP
     * @type variable
     * @desc Номер переменной для сохранения номера тайла координат XY от ЛКМ.
     * @default 13
      * 
     * @param rightClickXCoordProcessedVariableFP
     * @type variable
     * @desc Номер переменной для сохранения координаты X от ПКМ.
     * @default 11
     * 
     * @param rightClickYCoordProcessedVariableFP
     * @type variable
     * @desc Номер переменной для сохранения координаты Y от ПКМ.
     * @default 12
     * 
     * @param rightClickTerrainTagVariableFP
     * @type variable
     * @desc Номер переменной для сохранения номера тайла координат XY от ПКМ.
     * @default 13
     * 
     * @param leftClickCommonEventId
     * @type number
     * @desc Номер общего события, вызваемого ЛКМ.
     * @default 0
     * 
     * @param rightClickCommonEventId
     * @type number
     * @desc Номер общего события, вызваемого ПКМ.
     * @default 0
     * 
     * @param wheelCommonEventId
     * @type number
     * @desc Номер общего события, прокруткой колеса мыши.
     * @default 0
     *
     */
     
    var Imported = Imported || {};
    Imported.DKR_PuzzleMouse = true;
    
    var DKR = DKR || {};          
    DKR.PuzzleMouse = DKR.PuzzleMouse || {}; 
    DKR.PuzzleMouse.version = 2.0;
    
    
    
    
    ( () => {
    
    
    
    //----DATA
    DKR.PuzzleMouse.parameters = PluginManager.parameters('DKR_PuzzleMouse_2_MVMZ');
    let leftClickXCoordProcessedVariableFP = DKR.PuzzleMouse.leftClickXCoordProcessedVariableFP = Number(DKR.PuzzleMouse.parameters["leftClickXCoordProcessedVariableFP"]) || 11;
    let leftClickYCoordProcessedVariableFP = DKR.PuzzleMouse.leftClickYCoordProcessedVariableFP = Number(DKR.PuzzleMouse.parameters["leftClickYCoordProcessedVariableFP"]) || 12;
    let leftClickTerrainTagVariableFP = DKR.PuzzleMouse.leftClickTerrainTagVariableFP = Number(DKR.PuzzleMouse.parameters["leftClickTerrainTagVariableFP"]) || 13;
    let rightClickXCoordProcessedVariableFP = DKR.PuzzleMouse.rightClickXCoordProcessedVariableFP = Number(DKR.PuzzleMouse.parameters["rightClickXCoordProcessedVariableFP"]) || 14;
    let rightClickYCoordProcessedVariableFP = DKR.PuzzleMouse.rightClickYCoordProcessedVariableFP = Number(DKR.PuzzleMouse.parameters["rightClickYCoordProcessedVariableFP"]) || 15;
    let rightClickTerrainTagVariableFP = DKR.PuzzleMouse.rightClickTerrainTagVariableFP = Number(DKR.PuzzleMouse.parameters["rightClickTerrainTagVariableFP"]) || 16;
    let leftClickCommonEventId = DKR.PuzzleMouse.leftClickCommonEventId = Number(DKR.PuzzleMouse.parameters["leftClickCommonEventId"]) || 0;
    let rightClickCommonEventId = DKR.PuzzleMouse.rightClickCommonEventId = Number(DKR.PuzzleMouse.parameters["rightClickCommonEventId"]) || 0;
    let wheelCommonEventId = DKR.PuzzleMouse.wheelClickCommonEventId = Number(DKR.PuzzleMouse.parameters["wheelCommonEventId"]) || 0;
    
    let leftMouseClickCount = 0;
    let rightMouseClickCount = 0;
    
    
    
    //----LOGIC
    
    //--standard behaviour
    //--off s.b.
    const offMouseLeftClickStandardBehavior = function(isReqLeftMouseCoord = true){
    	Game_Temp.prototype.setDestination = function(x, y) {};
    	TouchInput._onLeftButtonDown = function(event){
    		let x = Graphics.pageToCanvasX(event.pageX);
    		let y = Graphics.pageToCanvasY(event.pageY);
    		
    			//console.log('DKR_PuzzleMouse: LMB click!');
    		if(true === isReqLeftMouseCoord){
    				//console.log('DKR_PuzzleMouse: LMB process coords#');
    			processMouseClickedData(true, x, y);
    		}
    		if(0 !== leftClickCommonEventId){
    				//console.log('DKR_PuzzleMouse: LMB call Common event: ' + leftClickCommonEventId);
    			$gameTemp.reserveCommonEvent(leftClickCommonEventId);
    		}
    		leftMouseClickCount += 1;
    	}
    	console.log('DKR_PuzzleMouse: LMB standard behavior OFF!');
    }
    
    
    const offMouseRightClickStandardBehavior = function(isReqRightMouseCoord = true){
    	Scene_Map.prototype.isMenuCalled = function() {
    		return Input.isTriggered('menu');
    	};	
    	TouchInput._onRightButtonDown = function(event){
    		let x = Graphics.pageToCanvasX(event.pageX);
    		let y = Graphics.pageToCanvasY(event.pageY);
    		
    			//console.log('DKR_PuzzleMouse: RMB click!');
    		if(true === isReqRightMouseCoord){
    				//console.log('DKR_PuzzleMouse: RMB process coords@');
    			processMouseClickedData(false, x, y);
    		}
    		if(0 !== rightClickCommonEventId){
    				//console.log('DKR_PuzzleMouse: RMB call Common event: ' + rightClickCommonEventId);
    			$gameTemp.reserveCommonEvent(rightClickCommonEventId);
    		}
    		rightMouseClickCount += 1;
    	}
    	console.log('DKR_PuzzleMouse: RMB standard behavior OFF!');
    }
    
    
    const offMouseLeftAndRightClickStandardBehavior = function(isReqLeftMouseCoord, isReqRightMouseCoord){
    	offMouseLeftClickStandardBehavior(isReqLeftMouseCoord);
    	offMouseRightClickStandardBehavior(isReqRightMouseCoord);
    }
    
    
    //--on s.b.
    const onMouseLeftClickStandardBehavior = function(){
    	Game_Temp.prototype.setDestination = function(x, y) {
    		this._destinationX = x;
    		this._destinationY = y;
    	};
    	TouchInput._onLeftButtonDown = function(event) {
    		const x = Graphics.pageToCanvasX(event.pageX);
    		const y = Graphics.pageToCanvasY(event.pageY);
    		if (Graphics.isInsideCanvas(x, y)) {
    			this._mousePressed = true;
    			this._pressedTime = 0;
    			this._onTrigger(x, y);
    		}
    	};
    	console.log('DKR_PuzzleMouse: LMB standard behavior ON...');
    }
    
    
    const onMouseRightClickStandardBehavior = function(){
    	Scene_Map.prototype.isMenuCalled = function() {
    		return Input.isTriggered("menu") || TouchInput.isCancelled();
    	};
    	TouchInput._onRightButtonDown = function(event) {
    		const x = Graphics.pageToCanvasX(event.pageX);
    		const y = Graphics.pageToCanvasY(event.pageY);
    		if (Graphics.isInsideCanvas(x, y)) {
    			this._onCancel(x, y);
    		}
    	};
    	console.log('DKR_PuzzleMouse: RMB standard behavior ON...');
    }
    
    
    const onMouseLeftAndRightClickStandardBehavior = function(){
    	onMouseLeftClickStandardBehavior();
    	onMouseRightClickStandardBehavior();
    }
    
    
    //--common events
    const setMouseLeftClickCommonEventId = function(mlcceId){
    	if(mlcceId < 0){
    		console.log('DKR_PuzzleMouse: LMB Common event Id can`t be below zero!');
    		return false;
    	}
    	leftClickCommonEventId = mlcceId;
    }
    
    
    DKR.PuzzleMouse.setMouseRightClickCommonEventId = function(mrcceId){
    	if(mrcceId < 0){
    		console.log('DKR_PuzzleMouse: RMB Common event Id can`t be below zero!');
    		return false;
    	}
    	rightClickCommonEventId = mrcceId;
    }
    
    DKR.PuzzleMouse.setMouseWheelCommonEventId = function(mwceId){
    	if(mwceId < 0){
    		console.log('DKR_PuzzleMouse: WHEEL Common event Id can`t be below zero!');
    		return false;
    	}
    	wheelCommonEventId = mwceId;
    }
    
    
    //----PUZZLE CLICK PROCESSING
    const processMouseClickedData = function(isLeftMouseClicked, x, y){
    	let xCoord = x;
    	let yCoord = y;
    	let xCoordProcessed = $gameMap.canvasToMapX(xCoord);
    	let yCoordProcessed = $gameMap.canvasToMapY(yCoord);
    	let terrainTagOfProcessedCoords = $gameMap.terrainTag(xCoordProcessed , yCoordProcessed);
    	
    
    	if(true === isLeftMouseClicked){
    		$gameVariables.setValue(leftClickXCoordProcessedVariableFP, xCoordProcessed);
    		$gameVariables.setValue(leftClickYCoordProcessedVariableFP, yCoordProcessed);
    		$gameVariables.setValue(leftClickTerrainTagVariableFP, terrainTagOfProcessedCoords);
    	}else{
    		$gameVariables.setValue(rightClickXCoordProcessedVariableFP, xCoordProcessed);
    		$gameVariables.setValue(rightClickYCoordProcessedVariableFP, yCoordProcessed);
    		$gameVariables.setValue(rightClickTerrainTagVariableFP, terrainTagOfProcessedCoords);
    	}	
    		//console.log('---');
    		//console.log('DKR_PuzzleMouse: xCoord || xCoordProcessed: ' + xCoord + ' || ' +  xCoordProcessed);
    		//console.log('DKR_PuzzleMouse: yCoord || yCoordProcessed: ' + yCoord + ' || ' +  yCoordProcessed);
    		//console.log('DKR_PuzzleMouse: terrainTagOfProcessedCoords: ' + terrainTagOfProcessedCoords);
    }
    
    
    //----WHEEL
    DKR.PuzzleMouse.TouchInput__onWheel = TouchInput._onWheel;
    TouchInput._onWheel = function(event) {
    	DKR.PuzzleMouse.TouchInput__onWheel.call(this, event);
    	if(0 !== wheelCommonEventId){
    		$gameTemp.reserveCommonEvent(wheelCommonEventId);
    	}else{
    		console.log('W_ZZZ');
    	}
    }
    
    
    
    
    //---- COMMANDS
    
    //-on/off s.b.
    DKR.PuzzleMouse.mouseLeftClickStandardBehaviorOnOff = function(isStandardBehaviourOn){
    	if(false === isStandardBehaviourOn){
    		offMouseLeftClickStandardBehavior();
    	}else{
    		onMouseLeftClickStandardBehavior();
    	}
    	
    }
    
    DKR.PuzzleMouse.mouseRightClickStandardBehaviorOnOff = function(isStandardBehaviourOn){
    	if(false === isStandardBehaviourOn){
    		offMouseRightClickStandardBehavior();
    	}else{
    		onMouseRightClickStandardBehavior();
    	}
    }
    
    DKR.PuzzleMouse.mouseALLStandardBehaviorOnOff = function(isStandardBehaviourOn, isReqLeftMouseCoord = true, isReqRightMouseCoord = true){
    	if(false === isStandardBehaviourOn){
    		offMouseLeftAndRightClickStandardBehavior(isReqLeftMouseCoord, isReqRightMouseCoord);
    	}else{
    		onMouseLeftAndRightClickStandardBehavior();
    	}
    	
    }
    
    
    //-commont events
    DKR.PuzzleMouse.setMouseLeftClickCommonEventId = function(mlcceId){
    	setMouseLeftClickCommonEventId(mlcceId);
    }
    
    DKR.PuzzleMouse.setMouseRightClickCommonEventId = function(mrcceId){
    	setMouseRightClickCommonEventId(mrcceId);
    }
    
    DKR.PuzzleMouse.setMouseWheelCommonEventId = function(mwceId){
    	setMouseWheelCommonEventId(mwceId);
    }
    
    
    //-clicks count
    DKR.PuzzleMouse.getLeftMouseClickCount = function(){
    	return leftMouseClickCount;
    }
    DKR.PuzzleMouse.setLeftMouseClickCount = function(lCount = 0){
    	leftMouseClickCount = lCount;
    }
    
    DKR.PuzzleMouse.getRightMouseClickCount = function(){
    	return rightMouseClickCount;
    }
    DKR.PuzzleMouse.setRightMouseClickCount = function(rCount = 0){
    	rightMouseClickCount = rCount;
    }
    
    
    
    })();


    Спойлер Код плагина для MV, старая версия 1.0.0:

    Код:
    /*:
     *-----------------------------------------------------------------------------
     *  DKR PuzzleMouse
     *-----------------------------------------------------------------------------
     *  For: RPGMAKER MV
     *  DKR_PuzzleMouse_MV.js
     *-----------------------------------------------------------------------------
     *  16.05.2021 - Версия 1.0.0
     *-----------------------------------------------------------------------------
     * Поставляется AS-IS.
     * Вся ответственность при использовании - на Пользователе!
     *-----------------------------------------------------------------------------
     *-----------------------------------------------------------------------------
     * @author DarchanKaen
     * @target MV
     * @plugindesc (v.1.0.0) Плагин позволяет использовать мышку для создания паззлов, а именно (для ЛКМ и ПКМ, вместе или отдельно): отключать и включать стандартное поведение, получать координаты кликов и номер тега тайла, подсчитывать количество кликов, а также вызывать Общие события.
     *
     * @help
     *   DKR PuzzleMouse
     * ----------------------------------------------------------------------------
     * ---Общая информация:
     * Плагин позволяет использовать мышку для создания паззлов, 
     * а именно (для ЛКМ и ПКМ, вместе или отдельно):::
     * - отключать и включать стандартное поведение;
     * - получать координаты кликов и номер тега тайла (они записываются в перменные 11-16);
     * - подсчитывать количество кликов и задавать кол-во;
     * - вызывать Общие события.
     * ---Команды(в эвенте команда "Скрипт"):
     * - Отключение стандратного поведения:
     * DKR.PuzzleMouse.offMouseLeftClickStandardBehavior(isReqLeftMouseCoord); - тольк ЛКМ.
     * DKR.PuzzleMouse.offMouseRightClickStandardBehavior(isReqRightMouseCoord); - тольк ПКМ.
     * DKR.PuzzleMouse.offMouseLeftAndRightClickStandardBehavior(isReqLeftMouseCoord, isReqRightMouseCoord);  - вместе ЛКМ и ПКМ.
     * где isReqLeftMouseCoord, isReqRightMouseCoord - true (нужны координаты и номер тайла) или false (не нужны).
     * - Включение стандратного поведения:
     * DKR.PuzzleMouse.onMouseLeftClickStandardBehavior(); - тольк ЛКМ.
     * DKR.PuzzleMouse.onMouseRightClickStandardBehavior(); - тольк ПКМ.
     * DKR.PuzzleMouse.onMouseLeftAndRightClickStandardBehavior();  - вместе ЛКМ и ПКМ.
     * - Задание номера вызываемого Общего события.
     * DKR.PuzzleMouse.setMouseLeftClickCommonEventId(N); - задание Общего события для ЛКМ; 0 по-умочланию.
     * DKR.PuzzleMouse.setMouseRightClickCommonEventId(N); - задание Общего события для ПКМ; 0 по-умочланию
     * где N - номер вызываемого Общего события; если номер равен 0, то Общее событие не вызывается. 
     * - Получение и задание кол-ва кликов.
     * DKR.PuzzleMouse.getLeftMouseClickCount(); - получение кол-ва кликов ЛКМ.
     * DKR.PuzzleMouse.getRightMouseClickCount(); - получение кол-ва кликов ПКМ.
     * DKR.PuzzleMouse.setLeftMouseClickCount(N); - задание кол-ва кликов ЛКМ; 0 по-умочланию.
     * DKR.PuzzleMouse.setRightMouseClickCount(N); - задание кол-ва кликов ЛКМ; 0 по-умочланию
     * ----------------------------------------------------------------------------
     * 
     * @param mapCellSizeFP
     * @type number
     * @desc Размер клетки тайла.
     * @default 48
     * 
     * @param leftClickXCoordProcessedVariableFP
     * @type variable
     * @desc Номер переменной для сохранения координаты X от ЛКМ.
     * @default 11
     * 
     * @param leftClickYCoordProcessedVariableFP
     * @type variable
     * @desc Номер переменной для сохранения координаты Y от ЛКМ.
     * @default 12
     * 
     * @param leftClickTerrainTagVariableFP
     * @type variable
     * @desc Номер переменной для сохранения номера тайла координат XY от ЛКМ.
     * @default 13
      * 
     * @param rightClickXCoordProcessedVariableFP
     * @type variable
     * @desc Номер переменной для сохранения координаты X от ПКМ.
     * @default 11
     * 
     * @param rightClickYCoordProcessedVariableFP
     * @type variable
     * @desc Номер переменной для сохранения координаты Y от ПКМ.
     * @default 12
     * 
     * @param rightClickTerrainTagVariableFP
     * @type variable
     * @desc Номер переменной для сохранения номера тайла координат XY от ПКМ.
     * @default 13
      * 
     * @param leftClickCommonEventId
     * @type number
     * @desc Номер общего события, вызваемого ЛКМ.
     * @default 0
      * 
     * @param rightClickCommonEventId
     * @type number
     * @desc Номер общего события, вызваемого ПКМ.
     * @default 0
     *     
     */
     
    var Imported = Imported || {};
    Imported.DKR_PuzzleMouse = true;
    
    var DKR = DKR || {};          
    DKR.PuzzleMouse = DKR.PuzzleMouse || {}; 
    
    (function() { 
    DKR.PuzzleMouse.version = 1.0;
    
    DKR.PuzzleMouse.parameters = PluginManager.parameters('DKR_PuzzleMouse');
    DKR.PuzzleMouse.mapCellSizeFP = Number(DKR.PuzzleMouse.parameters["mapCellSizeFP"]) || 48;
    DKR.PuzzleMouse.leftClickXCoordProcessedVariableFP = Number(DKR.PuzzleMouse.parameters["leftClickXCoordProcessedVariableFP"]) || 11;
    DKR.PuzzleMouse.leftClickYCoordProcessedVariableFP = Number(DKR.PuzzleMouse.parameters["leftClickYCoordProcessedVariableFP"]) || 12;
    DKR.PuzzleMouse.leftClickTerrainTagVariableFP = Number(DKR.PuzzleMouse.parameters["leftClickTerrainTagVariableFP"]) || 13;
    DKR.PuzzleMouse.rightClickXCoordProcessedVariableFP = Number(DKR.PuzzleMouse.parameters["rightClickXCoordProcessedVariableFP"]) || 14;
    DKR.PuzzleMouse.rightClickYCoordProcessedVariableFP = Number(DKR.PuzzleMouse.parameters["rightClickYCoordProcessedVariableFP"]) || 15;
    DKR.PuzzleMouse.rightClickTerrainTagVariableFP = Number(DKR.PuzzleMouse.parameters["rightClickTerrainTagVariableFP"]) || 16;
    DKR.PuzzleMouse.leftClickCommonEventId = Number(DKR.PuzzleMouse.parameters["leftClickCommonEventId"]) || 0;
    DKR.PuzzleMouse.rightClickCommonEventId = Number(DKR.PuzzleMouse.parameters["rightClickCommonEventId"]) || 0;
    
    
    //----COMMON EVENT IDs
    DKR.PuzzleMouse.setMouseLeftClickCommonEventId = function(mlcceId){
    	if(mlcceId < 0){
    		console.log('DKR_PuzzleMouse: LMB Common event Id can`t be below zero!');
    		return false;
    	}
    	DKR.PuzzleMouse.leftClickCommonEventId = mlcceId;
    	console.log('DKR_PuzzleMouse: set LMB Common event Id: ' + DKR.PuzzleMouse.leftClickCommonEventId);
    	
    }
    DKR.PuzzleMouse.setMouseRightClickCommonEventId = function(mrcceId){
    	if(mrcceId < 0){
    		console.log('DKR_PuzzleMouse: RMB Common event Id can`t be below zero!');
    		return false;
    	}
    	DKR.PuzzleMouse.rightClickCommonEventId = mrcceId;
    	console.log('DKR_PuzzleMouse: set RMB Common event Id: ' + DKR.PuzzleMouse.leftClickCommonEventId);
    }
    
    
    //----MOUSE CLICKED COUNT
    DKR.PuzzleMouse.leftMouseClickCount = 0;
    DKR.PuzzleMouse.rightMouseClickCount = 0;
    
    DKR.PuzzleMouse.getLeftMouseClickCount = function(){
    	return DKR.PuzzleMouse.leftMouseClickCount;
    }
    DKR.PuzzleMouse.setLeftMouseClickCount = function(lCount = 0){
    	return DKR.PuzzleMouse.leftMouseClickCount = lCount;
    }
    
    DKR.PuzzleMouse.getRightMouseClickCount = function(){
    	return DKR.PuzzleMouse.rightMouseClickCount;
    }
    DKR.PuzzleMouse.setRightMouseClickCount = function(rCount = 0){
    	return DKR.PuzzleMouse.rightMouseClickCount = rCount;
    }
    
    
    //----STANDARD BEHAVIOR
    //--OFF STANDARD BEHAVIOR
    DKR.PuzzleMouse.offMouseLeftClickStandardBehavior = function(isReqLeftMouseCoord = true){
    	Game_Temp.prototype.setDestination = function(x, y) {};
    	TouchInput._onLeftButtonDown = function(){
    		console.log('DKR_PuzzleMouse: LMB click!');
    		if(true === isReqLeftMouseCoord){
    			console.log('DKR_PuzzleMouse: LMB process coords#');
    			DKR.PuzzleMouse.processMouseClickedData(true);
    		}
    		if(0 !== DKR.PuzzleMouse.leftMouseClickCommonEventId){
    			console.log('DKR_PuzzleMouse: LMB call Common event: ' + DKR.PuzzleMouse.leftClickCommonEventId);
    			$gameTemp.reserveCommonEvent(DKR.PuzzleMouse.leftClickCommonEventId);
    		}
    		DKR.PuzzleMouse.leftMouseClickCount += 1;
    	}
    	console.log('DKR_PuzzleMouse: LMB standard behavior OFF!');
    }
    
    DKR.PuzzleMouse.offMouseRightClickStandardBehavior = function(isReqRightMouseCoord = true){
    	Scene_Map.prototype.isMenuCalled = function() {
    		return Input.isTriggered('menu');
    	};	
    	TouchInput._onRightButtonDown = function(){
    		console.log('DKR_PuzzleMouse: RMB click!');
    		if(true === isReqRightMouseCoord){
    			console.log('DKR_PuzzleMouse: RMB process coords@');
    			DKR.PuzzleMouse.processMouseClickedData(false);
    		}
    		if(0 !== DKR.PuzzleMouse.rightMouseClickCommonEventId){
    			console.log('DKR_PuzzleMouse: RMB call Common event: ' + DKR.PuzzleMouse.rightClickCommonEventId);
    			$gameTemp.reserveCommonEvent(DKR.PuzzleMouse.rightClickCommonEventId);
    		}
    		DKR.PuzzleMouse.rightMouseClickCount += 1;
    	}
    	console.log('DKR_PuzzleMouse: RMB standard behavior OFF!');
    }
    
    DKR.PuzzleMouse.offMouseLeftAndRightClickStandardBehavior = function(isReqLeftMouseCoord = true, isReqRightMouseCoord = true){
    	DKR.PuzzleMouse.offMouseLeftClickStandardBehavior(isReqLeftMouseCoord);
    	DKR.PuzzleMouse.offMouseRightClickStandardBehavior(isReqRightMouseCoord);
    }
    //--
    
    //--ON STANDARD BEHAVIOR
    DKR.PuzzleMouse.onMouseLeftClickStandardBehavior = function(){
    	Game_Temp.prototype.setDestination = function(x, y) {
    		this._destinationX = x;
    		this._destinationY = y;
    	};
    	TouchInput._onLeftButtonDown = function(event) {
    		const x = Graphics.pageToCanvasX(event.pageX);
    		const y = Graphics.pageToCanvasY(event.pageY);
    		if (Graphics.isInsideCanvas(x, y)) {
    			this._mousePressed = true;
    			this._pressedTime = 0;
    			this._onTrigger(x, y);
    		}
    	};
    	console.log('DKR_PuzzleMouse: LMB standard behavior ON...');
    }
    
    DKR.PuzzleMouse.onMouseRightClickStandardBehavior = function(){
    	Scene_Map.prototype.isMenuCalled = function() {
    		return Input.isTriggered("menu") || TouchInput.isCancelled();
    	};
    	TouchInput._onRightButtonDown = function(event) {
    		const x = Graphics.pageToCanvasX(event.pageX);
    		const y = Graphics.pageToCanvasY(event.pageY);
    		if (Graphics.isInsideCanvas(x, y)) {
    			this._onCancel(x, y);
    		}
    	};
    	console.log('DKR_PuzzleMouse: RMB standard behavior ON...');
    }
    
    DKR.PuzzleMouse.onMouseLeftAndRightClickStandardBehavior = function(){
    	DKR.PuzzleMouse.onMouseLeftClickStandardBehavior();
    	DKR.PuzzleMouse.onMouseRightClickStandardBehavior();
    }
    //--
    //----
    
    
    //----PUZZLE CLICK PROCESSING
    DKR.PuzzleMouse.processMouseClickedData = function(isLeftMouseClicked){
    	const mapCellSize = DKR.PuzzleMouse.mapCellSizeFP;
    	
    	let xCoord = TouchInput.x;
    	let yCoord = TouchInput.y;
    	let xCoordProcessed = Math.floor(xCoord / mapCellSize);
    	let yCoordProcessed = Math.floor(yCoord / mapCellSize);
    	let terrainTagOfProcessedCoords = $gameMap.terrainTag(xCoordProcessed , yCoordProcessed);
    	
    
    	if(true === isLeftMouseClicked){
    		$gameVariables.setValue(DKR.PuzzleMouse.leftClickXCoordProcessedVariableFP, xCoordProcessed);
    		$gameVariables.setValue(DKR.PuzzleMouse.leftClickYCoordProcessedVariableFP, yCoordProcessed);
    		$gameVariables.setValue(DKR.PuzzleMouse.leftClickTerrainTagVariableFP, terrainTagOfProcessedCoords);
    	}else{
    		$gameVariables.setValue(DKR.PuzzleMouse.rightClickXCoordProcessedVariableFP, xCoordProcessed);
    		$gameVariables.setValue(DKR.PuzzleMouse.rightClickYCoordProcessedVariableFP, yCoordProcessed);
    		$gameVariables.setValue(DKR.PuzzleMouse.rightClickTerrainTagVariableFP, terrainTagOfProcessedCoords);
    	}	
    	console.log('DKR_PuzzleMouse: xCoord || xCoordProcessed: ' + xCoord + ' || ' +  xCoordProcessed);
    	console.log('DKR_PuzzleMouse: yCoord || yCoordProcessed: ' + yCoord + ' || ' +  yCoordProcessed);
    	console.log('DKR_PuzzleMouse: terrainTagOfProcessedCoords: ' + terrainTagOfProcessedCoords);
    }
    
    
    })();


    Спойлер Код плагина для MZ, старая версия 1.0.0:

    Код:
    /*:
     *-----------------------------------------------------------------------------
     *  DKR PuzzleMouse
     *-----------------------------------------------------------------------------
     *  For: RPGMAKER MZ
     *  DKR_PuzzleMouse_MZ.js
     *-----------------------------------------------------------------------------
     *  16.05.2021 - Версия 1.0.0
     *-----------------------------------------------------------------------------
     * Поставляется AS-IS.
     * Вся ответственность при использовании - на Пользователе!
     *-----------------------------------------------------------------------------
     *-----------------------------------------------------------------------------
     * @author DarchanKaen
     * @target MZ
     * @plugindesc (v.1.0.0) Плагин позволяет использовать мышку для создания паззлов, а именно (для ЛКМ и ПКМ, вместе или отдельно): отключать и включать стандартное поведение, получать координаты кликов и номер тега тайла, подсчитывать количество кликов, а также вызывать Общие события.
     *
     * @help
     *   DKR PuzzleMouse
     * ----------------------------------------------------------------------------
     * ---Общая информация:
     * Плагин позволяет использовать мышку для создания паззлов, 
     * а именно (для ЛКМ и ПКМ, вместе или отдельно):::
     * - отключать и включать стандартное поведение;
     * - получать координаты кликов и номер тега тайла (они записываются в перменные 11-16);
     * - подсчитывать количество кликов и задавать кол-во;
     * - вызывать Общие события.
     * ---Команды(в эвенте команда "Скрипт"):
     * - Отключение стандратного поведения:
     * DKR.PuzzleMouse.offMouseLeftClickStandardBehavior(isReqLeftMouseCoord); - тольк ЛКМ.
     * DKR.PuzzleMouse.offMouseRightClickStandardBehavior(isReqRightMouseCoord); - тольк ПКМ.
     * DKR.PuzzleMouse.offMouseLeftAndRightClickStandardBehavior(isReqLeftMouseCoord, isReqRightMouseCoord);  - вместе ЛКМ и ПКМ.
     * где isReqLeftMouseCoord, isReqRightMouseCoord - true (нужны координаты и номер тайла) или false (не нужны).
     * - Включение стандратного поведения:
     * DKR.PuzzleMouse.onMouseLeftClickStandardBehavior(); - тольк ЛКМ.
     * DKR.PuzzleMouse.onMouseRightClickStandardBehavior(); - тольк ПКМ.
     * DKR.PuzzleMouse.onMouseLeftAndRightClickStandardBehavior();  - вместе ЛКМ и ПКМ.
     * - Задание номера вызываемого Общего события.
     * DKR.PuzzleMouse.setMouseLeftClickCommonEventId(N); - задание Общего события для ЛКМ; 0 по-умочланию.
     * DKR.PuzzleMouse.setMouseRightClickCommonEventId(N); - задание Общего события для ПКМ; 0 по-умочланию
     * где N - номер вызываемого Общего события; если номер равен 0, то Общее событие не вызывается. 
     * - Получение и задание кол-ва кликов.
     * DKR.PuzzleMouse.getLeftMouseClickCount(); - получение кол-ва кликов ЛКМ.
     * DKR.PuzzleMouse.getRightMouseClickCount(); - получение кол-ва кликов ПКМ.
     * DKR.PuzzleMouse.setLeftMouseClickCount(N); - задание кол-ва кликов ЛКМ; 0 по-умочланию.
     * DKR.PuzzleMouse.setRightMouseClickCount(N); - задание кол-ва кликов ЛКМ; 0 по-умочланию
     * ----------------------------------------------------------------------------
     * 
     * @param mapCellSizeFP
     * @type number
     * @desc Размер клетки тайла.
     * @default 48
     * 
     * @param leftClickXCoordProcessedVariableFP
     * @type variable
     * @desc Номер переменной для сохранения координаты X от ЛКМ.
     * @default 11
     * 
     * @param leftClickYCoordProcessedVariableFP
     * @type variable
     * @desc Номер переменной для сохранения координаты Y от ЛКМ.
     * @default 12
     * 
     * @param leftClickTerrainTagVariableFP
     * @type variable
     * @desc Номер переменной для сохранения номера тайла координат XY от ЛКМ.
     * @default 13
      * 
     * @param rightClickXCoordProcessedVariableFP
     * @type variable
     * @desc Номер переменной для сохранения координаты X от ПКМ.
     * @default 11
     * 
     * @param rightClickYCoordProcessedVariableFP
     * @type variable
     * @desc Номер переменной для сохранения координаты Y от ПКМ.
     * @default 12
     * 
     * @param rightClickTerrainTagVariableFP
     * @type variable
     * @desc Номер переменной для сохранения номера тайла координат XY от ПКМ.
     * @default 13
      * 
     * @param leftClickCommonEventId
     * @type number
     * @desc Номер общего события, вызваемого ЛКМ.
     * @default 0
      * 
     * @param rightClickCommonEventId
     * @type number
     * @desc Номер общего события, вызваемого ПКМ.
     * @default 0
     *     
     */
     
    var Imported = Imported || {};
    Imported.DKR_PuzzleMouse = true;
    
    var DKR = DKR || {};          
    DKR.PuzzleMouse = DKR.PuzzleMouse || {}; 
    DKR.PuzzleMouse.version = 1.0;
    
    DKR.PuzzleMouse.parameters = PluginManager.parameters('DKR_PuzzleMouse');
    DKR.PuzzleMouse.mapCellSizeFP = Number(DKR.PuzzleMouse.parameters["mapCellSizeFP"]) || 48;
    DKR.PuzzleMouse.leftClickXCoordProcessedVariableFP = Number(DKR.PuzzleMouse.parameters["leftClickXCoordProcessedVariableFP"]) || 11;
    DKR.PuzzleMouse.leftClickYCoordProcessedVariableFP = Number(DKR.PuzzleMouse.parameters["leftClickYCoordProcessedVariableFP"]) || 12;
    DKR.PuzzleMouse.leftClickTerrainTagVariableFP = Number(DKR.PuzzleMouse.parameters["leftClickTerrainTagVariableFP"]) || 13;
    DKR.PuzzleMouse.rightClickXCoordProcessedVariableFP = Number(DKR.PuzzleMouse.parameters["rightClickXCoordProcessedVariableFP"]) || 14;
    DKR.PuzzleMouse.rightClickYCoordProcessedVariableFP = Number(DKR.PuzzleMouse.parameters["rightClickYCoordProcessedVariableFP"]) || 15;
    DKR.PuzzleMouse.rightClickTerrainTagVariableFP = Number(DKR.PuzzleMouse.parameters["rightClickTerrainTagVariableFP"]) || 16;
    DKR.PuzzleMouse.leftClickCommonEventId = Number(DKR.PuzzleMouse.parameters["leftClickCommonEventId"]) || 0;
    DKR.PuzzleMouse.rightClickCommonEventId = Number(DKR.PuzzleMouse.parameters["rightClickCommonEventId"]) || 0;
    
    
    //----COMMON EVENT IDs
    DKR.PuzzleMouse.setMouseLeftClickCommonEventId = function(mlcceId){
    	if(mlcceId < 0){
    		console.log('DKR_PuzzleMouse: LMB Common event Id can`t be below zero!');
    		return false;
    	}
    	DKR.PuzzleMouse.leftClickCommonEventId = mlcceId;
    	console.log('DKR_PuzzleMouse: set LMB Common event Id: ' + DKR.PuzzleMouse.leftClickCommonEventId);
    	
    }
    DKR.PuzzleMouse.setMouseRightClickCommonEventId = function(mrcceId){
    	if(mrcceId < 0){
    		console.log('DKR_PuzzleMouse: RMB Common event Id can`t be below zero!');
    		return false;
    	}
    	DKR.PuzzleMouse.rightClickCommonEventId = mrcceId;
    	console.log('DKR_PuzzleMouse: set RMB Common event Id: ' + DKR.PuzzleMouse.leftClickCommonEventId);
    }
    
    
    //----MOUSE CLICKED COUNT
    DKR.PuzzleMouse.leftMouseClickCount = 0;
    DKR.PuzzleMouse.rightMouseClickCount = 0;
    
    DKR.PuzzleMouse.getLeftMouseClickCount = function(){
    	return DKR.PuzzleMouse.leftMouseClickCount;
    }
    DKR.PuzzleMouse.setLeftMouseClickCount = function(lCount = 0){
    	return DKR.PuzzleMouse.leftMouseClickCount = lCount;
    }
    
    DKR.PuzzleMouse.getRightMouseClickCount = function(){
    	return DKR.PuzzleMouse.rightMouseClickCount;
    }
    DKR.PuzzleMouse.setRightMouseClickCount = function(rCount = 0){
    	return DKR.PuzzleMouse.rightMouseClickCount = rCount;
    }
    
    
    //----STANDARD BEHAVIOR
    //--OFF STANDARD BEHAVIOR
    DKR.PuzzleMouse.offMouseLeftClickStandardBehavior = function(isReqLeftMouseCoord = true){
    	Game_Temp.prototype.setDestination = function(x, y) {};
    	TouchInput._onLeftButtonDown = function(){
    		console.log('DKR_PuzzleMouse: LMB click!');
    		if(true === isReqLeftMouseCoord){
    			console.log('DKR_PuzzleMouse: LMB process coords#');
    			DKR.PuzzleMouse.processMouseClickedData(true);
    		}
    		if(0 !== DKR.PuzzleMouse.leftMouseClickCommonEventId){
    			console.log('DKR_PuzzleMouse: LMB call Common event: ' + DKR.PuzzleMouse.leftClickCommonEventId);
    			$gameTemp.reserveCommonEvent(DKR.PuzzleMouse.leftClickCommonEventId);
    		}
    		DKR.PuzzleMouse.leftMouseClickCount += 1;
    	}
    	console.log('DKR_PuzzleMouse: LMB standard behavior OFF!');
    }
    
    DKR.PuzzleMouse.offMouseRightClickStandardBehavior = function(isReqRightMouseCoord = true){
    	Scene_Map.prototype.isMenuCalled = function() {
    		return Input.isTriggered('menu');
    	};	
    	TouchInput._onRightButtonDown = function(){
    		console.log('DKR_PuzzleMouse: RMB click!');
    		if(true === isReqRightMouseCoord){
    			console.log('DKR_PuzzleMouse: RMB process coords@');
    			DKR.PuzzleMouse.processMouseClickedData(false);
    		}
    		if(0 !== DKR.PuzzleMouse.rightMouseClickCommonEventId){
    			console.log('DKR_PuzzleMouse: RMB call Common event: ' + DKR.PuzzleMouse.rightClickCommonEventId);
    			$gameTemp.reserveCommonEvent(DKR.PuzzleMouse.rightClickCommonEventId);
    		}
    		DKR.PuzzleMouse.rightMouseClickCount += 1;
    	}
    	console.log('DKR_PuzzleMouse: RMB standard behavior OFF!');
    }
    
    DKR.PuzzleMouse.offMouseLeftAndRightClickStandardBehavior = function(isReqLeftMouseCoord = true, isReqRightMouseCoord = true){
    	DKR.PuzzleMouse.offMouseLeftClickStandardBehavior(isReqLeftMouseCoord);
    	DKR.PuzzleMouse.offMouseRightClickStandardBehavior(isReqRightMouseCoord);
    }
    //--
    
    //--ON STANDARD BEHAVIOR
    DKR.PuzzleMouse.onMouseLeftClickStandardBehavior = function(){
    	Game_Temp.prototype.setDestination = function(x, y) {
    		this._destinationX = x;
    		this._destinationY = y;
    	};
    	TouchInput._onLeftButtonDown = function(event) {
    		const x = Graphics.pageToCanvasX(event.pageX);
    		const y = Graphics.pageToCanvasY(event.pageY);
    		if (Graphics.isInsideCanvas(x, y)) {
    			this._mousePressed = true;
    			this._pressedTime = 0;
    			this._onTrigger(x, y);
    		}
    	};
    	console.log('DKR_PuzzleMouse: LMB standard behavior ON...');
    }
    
    DKR.PuzzleMouse.onMouseRightClickStandardBehavior = function(){
    	Scene_Map.prototype.isMenuCalled = function() {
    		return Input.isTriggered("menu") || TouchInput.isCancelled();
    	};
    	TouchInput._onRightButtonDown = function(event) {
    		const x = Graphics.pageToCanvasX(event.pageX);
    		const y = Graphics.pageToCanvasY(event.pageY);
    		if (Graphics.isInsideCanvas(x, y)) {
    			this._onCancel(x, y);
    		}
    	};
    	console.log('DKR_PuzzleMouse: RMB standard behavior ON...');
    }
    
    DKR.PuzzleMouse.onMouseLeftAndRightClickStandardBehavior = function(){
    	DKR.PuzzleMouse.onMouseLeftClickStandardBehavior();
    	DKR.PuzzleMouse.onMouseRightClickStandardBehavior();
    }
    //--
    //----
    
    
    //----PUZZLE CLICK PROCESSING
    DKR.PuzzleMouse.processMouseClickedData = function(isLeftMouseClicked){
    	const mapCellSize = DKR.PuzzleMouse.mapCellSizeFP;
    	
    	let xCoord = TouchInput.x;
    	let yCoord = TouchInput.y;
    	let xCoordProcessed = Math.floor(xCoord / mapCellSize);
    	let yCoordProcessed = Math.floor(yCoord / mapCellSize);
    	let terrainTagOfProcessedCoords = $gameMap.terrainTag(xCoordProcessed , yCoordProcessed);
    	
    
    	if(true === isLeftMouseClicked){
    		$gameVariables.setValue(DKR.PuzzleMouse.leftClickXCoordProcessedVariableFP, xCoordProcessed);
    		$gameVariables.setValue(DKR.PuzzleMouse.leftClickYCoordProcessedVariableFP, yCoordProcessed);
    		$gameVariables.setValue(DKR.PuzzleMouse.leftClickTerrainTagVariableFP, terrainTagOfProcessedCoords);
    	}else{
    		$gameVariables.setValue(DKR.PuzzleMouse.rightClickXCoordProcessedVariableFP, xCoordProcessed);
    		$gameVariables.setValue(DKR.PuzzleMouse.rightClickYCoordProcessedVariableFP, yCoordProcessed);
    		$gameVariables.setValue(DKR.PuzzleMouse.rightClickTerrainTagVariableFP, terrainTagOfProcessedCoords);
    	}	
    	console.log('DKR_PuzzleMouse: xCoord || xCoordProcessed: ' + xCoord + ' || ' +  xCoordProcessed);
    	console.log('DKR_PuzzleMouse: yCoord || yCoordProcessed: ' + yCoord + ' || ' +  yCoordProcessed);
    	console.log('DKR_PuzzleMouse: terrainTagOfProcessedCoords: ' + terrainTagOfProcessedCoords);
    }



    Ссылки на загрузку:
    Спойлер Актуальная, универсальная версия 2.3.0:

    Спойлер Старые отдельные версии, 1.0.0:

    Условия поставки плагина:
    Поставляется AS-IS.
    Вся ответственность при использовании - на Пользователе!
    !

    Совместимость с другими плагинами на мышку Автор не гарантирует!


    Спойлер Лирическое отступление:
    Это развитие "плагина", что я использовал в "Кибербаге".
    Вот тут написал много чего дополнительного...Делал для себя, но может кому поможет.
    В принципе, при помощи такого плагина можно и Порталы сделать, и подобие шутера (вместе с другими плагинами).

    Возможно такой плагин(ы) есть, но будет еще вариант.
    Последний раз редактировалось Darchan Kaen; 25.12.2021 в 22:08. Причина: Версия плагина 2.3.0

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
[MV + MZ]DKR_PuzzleMouse